A service-level agreement (SLA) between a storage system and a storage user (user) defines the quality of service (QoS) that is guaranteed to logical volumes associated with the storage user and particularity defines the performance, such as: response time, number of IO operations per second (IOPS), and throughput (megabytes per second).
Various logical volumes of a storage system may be assigned with different SLAs and thus different required performance. Usually, the various logical volumes share the same system resources, such as physical disk drives. Physical disk drives handle their own internal queues that are handled in a FIFO manner, without awareness of priorities dictated by the upper layers of the storage system, such as priorities that should be enforced due to guaranteed quality of service.
There is a need to share the disk drives resource among logical volumes, in a manner that reflects the required performance defined in the SLA of the logical volumes.